package com.example.single;

/**
 *
 * 使用同步机制将单例模式中的懒汉式改写成为线程安全的
 * @author readpage
 * @create 2022-08-04 20:19
 *
 * 区分饿汉式和懒汉式
 * 饿汉式:
 *      坏处加载时间过程。
 *      好处: 饿汉式是线程安全的
 *
 * 懒汉式:
 *      好处: 延迟对象的创建
 *      坏处: 线程不安全
 */

public class OrderTest {
    public static void main(String[] args) {
        Order order = Order.getInstance();
        Order order2 = Order.getInstance();
        System.out.println(order == order2);
    }
}

// 单例懒汉式
class Order {
    //1.私有化类的构造器
    private Order() {

    }

    // 2.声明当前类对象,没有初始化
    //3.此对象也必须声明为static的
    private static Order instance = null;

    //3.声明public、static的放回当前类对象的方法
    public static synchronized Order getInstance() {
        if (instance == null) {
            instance = new Order();
        }
        return instance;
    }
}
